/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */

package Vue;

import Controleur.Controleur;
import Modèle.Contact;
import javax.swing.*;
import java.awt.*;
import static javax.swing.Spring.width;

import java.awt.Color;
import java.awt.Container;
import java.awt.Dimension;
import java.awt.Font;
import java.awt.Rectangle;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.TreeMap;
import javax.swing.BorderFactory;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JLabel;
import javax.swing.JTextField;
import javax.swing.border.Border;
import javax.swing.border.LineBorder;

/**
 *
 * @author Valentin
 */
public class FenetreListe extends JDialog{
    
    Dimension dimension = java.awt.Toolkit.getDefaultToolkit().getScreenSize();
    int height = (int) dimension.getHeight();//obtenir hauteur écran
    int width = (int) dimension.getWidth();//obtenir largeur écran
 
    Controleur c;
    
    JLabel fond = new JLabel();
    JLabel entete = new JLabel();
    JList liste = new JList();
    JScrollPane defiler = new JScrollPane();
    
    
    public FenetreListe(int largeur, int hauteur, Controleur cont) {


        setLocation((width - largeur) / 2, (height - hauteur) / 2);//centrer fenetre
        setSize(largeur, hauteur+30);
        setResizable(false);//taille fixe
        setVisible(true);
        String titre = "Address Book";
        setTitle(titre);
        
        
        
        Container ContentPane = this.getContentPane();//panneau d'affichage
        
        ContentPane.setBackground(Color.DARK_GRAY);
        
        fond.setBackground(Color.DARK_GRAY);
        
        Border thickBorder = new LineBorder(Color.BLACK, 14);//Bordure bouttons

        
        
        entete.setBorder(null);
        entete.setText("Contacts");
        entete.setHorizontalAlignment(JLabel.CENTER);//écrire au centre
        Font police = new Font("Arial", Font.BOLD, 86);//choix de la police d'écriture
        entete.setFont(police);//appliquer la police
        entete.setForeground(Color.DARK_GRAY);
        entete.setBounds(new Rectangle(0,0,largeur,60));
        entete.setVisible(true);
        entete.setOpaque(true);
        entete.setBackground(Color.BLACK);
        
        
        
        liste.setBounds(new Rectangle(10,90,largeur,400));
        liste.setBackground(Color.DARK_GRAY);
        liste.setForeground(Color.BLACK);
        Font police2 = new Font("Arial", Font.BOLD, 30);//choix de la police d'écriture
        liste.setFont(police2);
        liste.addMouseListener(new Selectionner());
        liste.setSelectionBackground(Color.BLACK);
        liste.setSelectionForeground(Color.DARK_GRAY);
        UIManager.put("List.focusCellHighlightBorder", BorderFactory.createEmptyBorder());
        
        defiler.setBounds(new Rectangle(10,70,largeur-26,420));
        defiler.setBackground(Color.DARK_GRAY);
        defiler.setBorder(null);
        defiler.getVerticalScrollBar().setPreferredSize(new Dimension(0,0));
        defiler.getHorizontalScrollBar().setPreferredSize(new Dimension(0,0));
        defiler.setViewportView(liste);
 
        
        JButton boutonAZ = new JButton(new ImageIcon("iconeaz2.png"));
        boutonAZ.setBounds(new Rectangle(0,hauteur-106, largeur/3,100));
        boutonAZ.setBorder(thickBorder);
        boutonAZ.addMouseListener(new parDefaut());
        
        JButton boutonCercle = new JButton(new ImageIcon("iconecercle2.png"));
        boutonCercle.setBounds(new Rectangle(largeur/3-3,hauteur-106, largeur/3,100));
        boutonCercle.setBorder(thickBorder);
        boutonCercle.addMouseListener(new parRelation());
        
        JButton boutonTemps = new JButton(new ImageIcon("iconetemps.png"));
        boutonTemps.setBounds(new Rectangle(2*(largeur/3)-6,hauteur-106, largeur/3,100));
        boutonTemps.setBorder(thickBorder);
        boutonTemps.addMouseListener(new parDate());

        
       
       ContentPane.add(boutonTemps); 
       ContentPane.add(boutonCercle); 
       ContentPane.add(boutonAZ);
       ContentPane.add(defiler);
       ContentPane.add(entete);
       ContentPane.add(fond);
        
       
       this.revalidate();
        
       c=cont;
        
        
    }
    
    
    public void MaJListe(TreeMap<String, Contact> lyste)//mise à jour de l'affichage de la liste de contacts
    {
        liste.setListData(lyste.keySet().toArray());
    }
    
    public void MaJListeRelation(ArrayList<String> lyste)
    {
        liste.setListData(lyste.toArray());
    }

    
    
    
    
    class parRelation implements MouseListener {

        public parRelation() {
        }

        @Override
        public void mouseClicked(MouseEvent me) {
            c.afficherFenetreListeRelation();
            dispose();
        }

        @Override
        public void mousePressed(MouseEvent me) {
            }

        @Override
        public void mouseReleased(MouseEvent me) {
            }

        @Override
        public void mouseEntered(MouseEvent me) {
            }

        @Override
        public void mouseExited(MouseEvent me) {
            }
    }
    
    
    

    class parDate implements MouseListener {

        public parDate() {
        }

        @Override
        public void mouseClicked(MouseEvent me) {
            c.afficherFenetreListeDate();
            dispose();
        }

        @Override
        public void mousePressed(MouseEvent me) {
            }

        @Override
        public void mouseReleased(MouseEvent me) {
            }

        @Override
        public void mouseEntered(MouseEvent me) {
            }

        @Override
        public void mouseExited(MouseEvent me) {
            }
    }

    
    
    
    class parDefaut implements MouseListener {

        public parDefaut() {
        }

        @Override
        public void mouseClicked(MouseEvent me) {
        c.afficherFenetreListe();
        dispose();
        }

        @Override
        public void mousePressed(MouseEvent me) {
            }

        @Override
        public void mouseReleased(MouseEvent me) {
            }

        @Override
        public void mouseEntered(MouseEvent me) {
            }

        @Override
        public void mouseExited(MouseEvent me) {
            }
    }
    
    
    
    
    
    
    
    class Selectionner implements MouseListener {

        public Selectionner() {
        }

        @Override
        public void mouseClicked(MouseEvent me) {           
              
                c.rechercherContact((String) liste.getSelectedValue());
                dispose();
                
        }

        @Override
        public void mousePressed(MouseEvent me) {   
        }

        @Override
        public void mouseReleased(MouseEvent me) {  
        
            
        }

        @Override
        public void mouseEntered(MouseEvent me) {  }

        @Override
        public void mouseExited(MouseEvent me) {
            
        }

        
    }
    
}



